package com.ruoyi.fjtseac.util;

import org.springframework.web.multipart.MultipartFile;

/**
 * @author zzl
 * @date 2022/7/18 20:31
 */
public interface FileUtil {

    String FALSE = Constants.FALSE;
    /**
     * 文件上传
     * @param file 目标文件
     * @param type 文件类型 用于决定文件上传到的上级目录，不同类型存不同目录
     * @param uuid 作为redis的key来存取文件上传进度
     * @return 成功返回对象名，否则返回“false”
     */
    String upload(MultipartFile file, String type, String uuid);

    /**
     * 通过对象名判断文件是否存在
     * @param objectName 对象名
     * @return 存在返回true， 否则返回FALSE的值。
     */
    boolean exists(String objectName);

    /**
     * 通过对象名删除文件，可批量删除
     * @param objectNames 对象名
     * @return 成功返回true，否则false
     */
    boolean delete(String... objectNames);

    /**
     * 将视频转码为H264编码
     * @param inputUrl  输入的对象名
     * @param outputPath 输出的对象名
     */
    void transcodeToH264(String inputUrl, String outputPath);

    /**
     * 获取文件上传进度
     * @param uuid 文件唯一标识
     * @return
     */
    Object getProgress(String uuid);
}
